// 标题：最大子数组
// 题目描述：
// 给你一个整数数组 nums，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
// 子数组是数组中的一个连续部分。
// 示例 1：
// 输入：nums = [-2,1,-3,4,-1,2,1,-5,4]
// 输出：6
// 解释：连续子数组 [4,-1,2,1] 的和最大，为 6 。
// 示例 2：
// 输入：nums = [1]
// 输出：1
// 示例 3：
// 输入：nums = [5,4,-1,7,8]
// 输出：23
function maxSubArray(nums) {
    let currentMax = nums[0];
    let globalMax = nums[0];
    for (let i = 1; i < nums.length; i++) {
        // 比较把当前元素加入当前子数组和以当前元素作为新子数组开始，哪个和更大
        currentMax = Math.max(nums[i], currentMax + nums[i]);
        // 更新全局最大子数组和
        globalMax = Math.max(globalMax, currentMax);
    }
    return globalMax;
}
console.log(maxSubArray([-2,1,-3,4,-1,2,1,-5,4]))